package service;

import java.util.ArrayList;
import java.util.List;


import beans.*;
import beans.PlatoBean;
import entities.IngredienteEntity;
import entities.PlatoEntity;

public class PlatoSrv {
	
	private static PlatoSrv instancia = null;
	public static PlatoSrv getInstancia() {
		if( instancia == null) {
			instancia = new PlatoSrv();
		}
		return instancia;
	}
	
	public PlatoEntity bean2Entity(PlatoBean plato) {
		PlatoEntity entity = new PlatoEntity();
		entity.setArea(AreaSrv.getInstancia().bean2Entity(plato.getArea()));
		entity.setDescripcion(plato.getDescripcion());
		entity.setId(plato.getId());
		List<IngredienteEntity> ingredientes = new ArrayList<IngredienteEntity>();
		for (IngredienteBean ingredienteBean : plato.getIngredientes()) {
			IngredienteEntity ingredienteEntity = IngredienteSrv.getInstancia().bean2Entity(ingredienteBean);
			ingredientes.add(ingredienteEntity);
		}
		entity.setIngredientes(ingredientes);
		return entity;
	}
	
	
	public PlatoBean entity2Bean(PlatoEntity plato) {
		/*
		 * Tiene que trabajar con:
		 * 			Area - Ingredientes - Producto - Tipo Producto
		 */
		
		PlatoBean bean = new PlatoBean();
		bean.setId(plato.getId());
		bean.setArea(AreaSrv.getInstancia().entity2Bean(plato.getArea()));
		bean.setDescripcion(plato.getDescripcion());
		// la carga de ingredientes da un error de lazy
		List<IngredienteBean> ingredientes = new ArrayList<IngredienteBean>();
		for (IngredienteEntity ingredienteEntity : plato.getIngredientes()) {
			IngredienteBean ingredienteBean = IngredienteSrv.getInstancia().entity2Bean(ingredienteEntity);
			ingredientes.add(ingredienteBean);
		}
		bean.setIngredientes(ingredientes);
		return bean;
	}
}
